#ifndef ITEMPROPERTIES_HPP_INCLUDED
#define ITEMPROPERTIES_HPP_INCLUDED

enum EItemType
{
	EIT_NONE,
	EIT_BURNABLE,
	EIT_COUNT // for looping
};

class Item;
class ItemProperty
{
public:
	ItemProperty(Item* owner, EItemType type);
	virtual ~ItemProperty();

	virtual EItemType getItemType();

	virtual void action() = 0;
	virtual void update() = 0;

protected:
	EItemType Type;

	Item* Owner;
};

class PropertyBurning: public ItemProperty
{
public:
	PropertyBurning(Item* owner, unsigned int burnTimer, unsigned int flammability, unsigned int spreads);
	
	bool isBurning();
	bool isDoneBurning();

	int getFlammability();

	void action();
	void update();

private:
	bool Burning, DoneBurning, DoneBurningCall;

	int BurnTimer, BurnTimerNow, Flammability, Spreads, SpreadsNow;
};

#endif
